package com.ts.main.admin.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户订单表
 * @TableName t_order
 */
@Accessors(chain=true)
@Data
public class OrderVo implements Serializable {
    /**
     * 订单ID
     */
    @Schema(description = "订单ID")
    private Integer orderId;
    /**
     * 订单唯一编号
     */
    @Schema(description = "订单唯一编号")
    private String orderNumber;
    /**
     * 小程序用户ID
     */
    @Schema(description = "小程序用户ID")
    private Integer userId;
    /**
     * 小程序用户名称
     */
    @Schema(description = "小程序用户名称")
    private String userName;
    /**
     * 小程序用户手机号
     */
    @Schema(description = "小程序用户手机号")
    private String phone;
    /**
     * 处理者ID
     */
    @Schema(description = "处理者ID")
    private Integer dealUserId;
    /**
     * 处理者名称
     */
    @Schema(description = "处理者名称")
    private String dealUserName;
    /**
     * 订单时间
     */
    @Schema(description = "订单时间")
    private String orderDate;
    /**
     * 商品ID
     */
    @Schema(description = "商品ID")
    private Integer productId;
    /**
     * 商品名称
     */
    @Schema(description = "商品名称")
    private String productName;
    /**
     * 商品组合信息
     */
    @Schema(description = "商品组合信息")
    private String optionCombination;
    /**
     * 商品数量
     */
    @Schema(description = "商品数量")
    private Integer productCount;
    /**
     * 商品单价
     */
    @Schema(description = "商品单价")
    private String productPrice;
    /**
     * 商品总价（订单总金额）
     */
    @Schema(description = "商品总价（订单总金额）")
    private String totalAmount;
    /**
     * 收货地址ID
     */
    @Schema(description = "收货地址ID")
    private Integer userAddressId;
    /**
     * 个性化设计要求描述
     */
    @Schema(description = "个性化设计要求描述")
    private String description;

    /**
     * 用户应付款金额
     */
    @Schema(description = "用户应付款金额")
    private String mustPayAmount;

    /**
     * 用户待付款金额
     */
    @Schema(description = "用户待付款金额")
    private String waitPayAmount;

    /**
     * 用户支付金额
     */
    @Schema(description = "用户支付金额")
    private String actualPayAmount;

    /**
     * 订单有效支付时间（支付截止时间）
     */
    @Schema(description = "订单有效支付时间（支付截止时间）")
    private String effectiveTime;
    /**
     * 用户支付时间
     */
    @Schema(description = "用户支付时间")
    private String userPayTime;
    /**
     * 快递方式：（邮政：EMS，顺丰快递：SF，中通快递：ZTO，申通快递：STO，圆通快递：YTO，韵达快递：YUNDA，德邦快递：DEBON）
     */
    @Schema(description = "快递方式：（邮政：EMS，顺丰快递：SF，中通快递：ZTO，申通快递：STO，圆通快递：YTO，韵达快递：YUNDA，德邦快递：DEBON）")
    private String shippingMethod;
    /**
     * 快递单号
     */
    @Schema(description = "快递单号")
    private String trackNumber;
    /**
     * 订单状态:（待付款：OBLIGATION，待发货：WAIT_DELIVER，已发货：DELIVER，已完成：COMPLETED，已取消：CANCELLED）
     */
    @Schema(description = "订单状态:（待付款：OBLIGATION，待发货：WAIT_DELIVER，已发货：DELIVER，已完成：COMPLETED，已取消：CANCELLED）")
    private String orderStatus;
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private String createTime;
    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private String updateTime;
    /**
     * 用户收货地址信息
     */
    @Schema(description = "用户收货地址信息")
    private MiniUserAddressPartVo miniUserAddressPartVo;

}